﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using FantastPlatform.Decision.IModel;
using FantastPlatform.Framework.IModel;
using FantastPlatform.Framework.Core;

namespace FantastPlatform.Decision.Model
{
    public class PatrolTask : Node<IPatrolTask>, IPatrolTask
    {
        #region IPatrolTask 成员     

     

        public virtual IOrganization DutyOrganization
        {
            get;
            set;
        }

        public virtual IOrganization ExecOrganization
        {
            get;
            set;
        }

        public virtual IPatrolTaskType TaskType
        {
            get;
            set;
        }

        public virtual IEmployee DefaultLeader
        {
            get;
            set;
        }
        public virtual IEmployee DutyLeader
        {
            get;
            set;
        }
        public virtual DateTime? BeginTime
        {
            get;
            set;
        }

        public virtual DateTime? EndTime
        {
            get;
            set;
        }

        public virtual string Require
        {
            get;
            set;
        }      

        public virtual IList<IPatrolTaskLine> Line
        {
            get;
            set;
        }

        public virtual IList<IEmployee> Policemans
        {
            get;
            set;
        }

        #endregion


        #region INode<IPatrolTask> 成员

        public  override IPatrolTask Parent
        {
            get
            {
                return base.Parent;
            }
            set
            {
                base.Parent = value;
            }
        }

        public  override IList<IPatrolTask> Children
        {
            get
            {
                return base.Children;
            }
            set
            {
                base.Children = value;
            }
        }

        #endregion

        #region IPatrolTask 成员


        public virtual IList<IPatrolTaskLine> Position
        {
            get;
            set;
        }

        public virtual string SelfOrgPersonNum
        {
            get;
            set;
        }

        public virtual string OtherOrgPersonNum
        {
            get;
            set;
        }

        public virtual string OtherOrgPerson
        {
            get;
            set;
        }

        public virtual string SelfOrgCar
        {
            get;
            set;
        }
   public virtual string OtherOrgName
        {
            get;
            set;
        }

        #endregion
    }
}
